#include <string.h>
#include <iostream>
using std::cout;
using std::endl;
//静态数据成员
//电脑采购工作：每录入一条电脑信息，自动统计此时电脑的总金额
//此时便可以借助于静态数据成员来实现
class Computer{
public:
    Computer(const char * brand, float price)
    :_brand(new char[strlen(brand) + 1]())
    ,_price(price)
    {
        strcpy(_brand, brand);

        _totalPrice += _price;
    }
    static float _totalPrice;

private:
    char * _brand;
    float _price;
    //静态数据成员使用时，首先需要进行初始化操作
    //数据成员可以独立于对象存在
    //静态数据成员可以通过对象来访问，和上面讲的内容有冲突吗？
    //没有冲突，静态数据成员要远远早于对象的创建
    //如果对象创建了出来，那么静态数据成员也是可以直接使用的
};
//静态数据成员的初始化必须得在类的外部进行
float Computer::_totalPrice = 0;

void test(){
    cout << Computer::_totalPrice << endl;
    Computer c1("apple", 12000);
    cout << Computer::_totalPrice << endl;
    Computer c2("huawei", 25000);
    cout << Computer::_totalPrice << endl;

}

int main()
{
    test();
    return 0;
}

